![]() METHOD FOR DETERMINING IF THE DIGITAL CONTENT DOWNLOADED FROM A CONTENT BUFFER FOR A CONTENT BUFFER
专利摘要:
STREAMING ADAPTIVES FOR DISTRIBUTION OF DIGITAL CONTENT One embodiment of the present invention establishes a technology for adapting the playback bit rate to the delivery bandwidth available in a content delivery system comprising a content server and a content reader. A content reader periodically estimates whether a certain reproduction bit rate can realistically allow full reproduction for a given title, assuming the bandwidth currently available. If playback becomes impracticable at the current bandwidth bit rate assuming the currently available bandwidth, then the content reader lowers the bit rate until a viable bit rate is achieved. If reproduction is feasible using a higher bit rate, then the content reader can increase the bit rate. 公开号:BR112012002182B1 申请号:R112012002182-6 申请日:2010-07-23 公开日:2020-12-08 发明作者:Anthony Neal Park;Wei Wei 申请人:Netflix, Inc.; IPC主号:
专利说明:
CROSS REFERENCE TO RELATED ORDERS This application claims the benefit of U.S. Patent Application No. 12/509, 365, filed on July 24, 2009, which is incorporated herein by reference. BACKGROUND OF THE INVENTION Field of the Invention The modalities of the present invention generally refer to digital media and, more specifically, to adaptive streaming for the distribution of digital content. Description of the Related Art Conventional digital content distribution systems include a content server, a content player, and a communications network that connects the content server to the content player. The content server is configured to store digital content files, which can be downloaded from the content server to the content player. Each digital content file corresponds to a specific title of identification, such as "Gone with the Wind", familiar to the user. The digital content file typically includes sequential content data, organized according to the chronology of playback, and can include audio data, video data or a combination of these. The content player is configured to download and play a digital content file, in response to a user request to select the title for playback. The process of reproducing the digital content file includes decoding and rendering audio and video data into an audio signal and a video signal, which can trigger a video system (display) having a speaker subsystem and a subsystem of video. Reproduction typically involves a technique known in the art as "streaming", whereby the content server sequentially transmits the digital content file to the content player, and the content player plays the content of the digital content file, while the data received content comprise the digital content archive. To justify the varying latency and bandwidth within the communications network, a content buffer queues incoming content data in front of running content data. During times of network congestion, which leads to less available bandwidth, less content data is added to the content buffer, which can evacuate as content data is being dequeued to support the reproduction of a given data rate. playback bits. However, during times of high bandwidth, the content buffer is replenished and the time buffer is added until the content buffer is generally full again. In practical systems, the content buffer can queue the content data corresponding to a time interval that varies from seconds to more than one minute. Each digital content file stored on the content server is normally encoded for a specific playback bit rate. Before starting playback, the content player can measure the available bandwidth from the content server and select a digital content file, with a bit rate that can be supported by the measured available bandwidth. In order to maximize playback quality, a digital content file with the highest bit rate not exceeding the measured bandwidth is conventionally selected. As the communications network can provide sufficient bandwidth to download the selected digital content file while meeting the bit rate requirements, the player proceeds satisfactorily. In practice, however, the bandwidth available on the communications network constantly changes as different devices connected to the communications network perform independent tasks. If the available bandwidth on the communications network drops below a level necessary to satisfy a reproduction bit rate requirement for a sufficiently long period of time, then the content buffer can drain completely, resulting in a condition known in the art like buffer underrun. If a buffer depletion occurs, playback can become highly reliable or stop altogether, severely decreasing the overall quality of playback. As traffic through a conventional communications network tends to be unpredictable, congestion and reduced bandwidth are a common occurrence that negatively affects conventional current reproduction systems. One technique for reducing the likelihood of a buffer underrun in a streaming playback system is to select a conservatively low bit rate for playback. However, in doing so, the user ends up with a lower playback quality experience, although a high quality experience may have been possible. Another technique for reducing the likelihood of a buffer underrun is to pre-buffer a relatively large portion of the global digital content file before playback begins. However, this technique necessarily requires the user to wait a relatively long time before reproduction can begin and therefore lessens the overall reproduction experience. As illustrated above, what is needed in the art is an approach to downloading digital content files to a content player that provides a higher quality playback experience than prior art approaches. SUMMARY OF THE INVENTION One embodiment of the present invention establishes a method for adaptively downloading a digital content file from a content server to a content player. The method includes the steps of downloading at least one unit of digital content from a first encoded sequence included within the file to a content buffer within the content player, where the file includes a plurality of encoded sequences, each encoded sequence corresponding at a different bit rate at which digital content stored in the content buffer can be accessed for playback, and the first encoded string corresponds to a lower bit rate at which digital content stored in the content buffer can be accessed for the reproduction, determining that one or more units of digital content in the digital content file has yet to be downloaded and buffered for reproduction, determining a next encoded sequence included in the plurality of encoded sequences from which a next unit of content is downloaded digital, and downloading the next unit of digital content from the next stream encodes to the content buffer for playback. An advantage of the disclosed method is that the potential buffer empties based on playback bit rates and available download bandwidth is tracked and the digital content units are downloaded in the highest possible image quality, avoiding an emptying condition. buffer. Other modalities include, without limitation, a computer-readable medium, which includes instructions that allow a processing unit to implement one or more aspects of the disclosed methods, as well as a system configured to implement one or more aspects of the disclosed methods. BRIEF DESCRIPTION OF THE DRAWINGS So that the aforementioned features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, can be made with reference to the modalities, some of which are illustrated in the attached drawings. It should be noted, however, that the accompanying drawings illustrate only the typical modalities of the present invention and, therefore, should not be considered limiting its scope, so that the invention can admit other equally effective modalities. Figure 1 illustrates a content delivery system configured to implement one or more aspects of the present invention; Figure 2 is a more detailed view of the content player of Figure 1, according to an embodiment of the invention; Figure 3 is a more detailed view of the content server of Figure 1, according to an embodiment of the invention; Figure 4A is a more detailed view of the sequence header index of Figure 1, according to an embodiment of the invention; Figure 4B is a graph illustrating the results of buffer prediction algorithms performed at two different bit rates at an evaluation point, according to an embodiment of the invention; Figure 4C illustrates the data flow for buffering (caching; buffering) and the reproduction of digital content associated with a digital content file, according to an embodiment of the invention; Figure 5 is a flow diagram of the steps of the method to adaptively buffer the content data to a content buffer for reproduction, according to an embodiment of the invention; Figure 6 is a flow diagram of the method steps for changing a coded sequence to be buffered for reproduction, according to an embodiment of the invention; Figure 7A is a flow diagram of the method steps for predicting the feasibility of completing reproduction at a current bit rate, according to an embodiment of the invention; Figure 7B is a flow diagram of the steps of the method for carrying out the initialization step of the variables in Figure 7A, according to an embodiment of the invention; Figure 7C is a flow diagram of the steps of the method for carrying out the step of estimating the state of the content buffer in Figure 7A, according to an embodiment of the invention; and Figure 7D is a flow diagram of the steps of the method for performing the step of estimating the state of the content buffer in Figure 7A, according to an embodiment of the invention. DETAILED DESCRIPTION In the description that follows, numerous specific details are set out to provide a more complete understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention can be practiced without one or more of these specific details. In other cases, the well-known features have not been described in order to avoid obscuring the present invention. Figure 1 illustrates a content delivery system 100 configured to implement one or more aspects of the present invention. As shown, the content delivery system 100 includes, without limitation, a content player 110, one or more content servers 130, and a communications network 150. The content delivery system 100 can also include a content server. content directory 120. In one embodiment, one or more content servers 130 comprise a content distribution network (CDN) 140. The communications network 150 includes a plurality of communication network systems, such as routers and switches, configured to facilitate data communication between the content player 110 and one or more content servers 130. will recognize that many technically possible techniques exist for building the communications network 150, including the technologies practiced in deploying the well-known internet communications network. The content directory server 120 comprises a computer system configured to receive a title search request 152 and generate file location data 154. Title search request 152 includes, without limitation, the name of a movie or song requested by a user. Content directory server 120 queries a database (not shown) that maps a video stream of a given encoded title at a given playback bit rate to a digital content file, 132, residing on a content server associated 130. File location data 154 includes, without limitation, a reference to a content server 130 that is configured to provide digital content file 132 to content player 110. The content server 130 is a computer system configured to handle requests to download digital content files 132 from the content player 110. Digital content files can reside on a mass storage system accessible to the computer system . The mass storage system may include, without limitation, direct attached storage (DAS), network attached file storage (NDAS), or network attached block data storage -level storage). Digital content files 132 can be formatted and stored on the mass storage system using any technically feasible technique. A data transfer protocol, such as the well-known hypertext transfer protocol (HTTP), can be used to download digital content files 132 from the content server 130 to the content player 110. Each title (a film, music or other form of digital media) is associated with one or more digital content files 132. Each digital content file 132 comprises, without limitation, a sequence header index 114, audio data and a coded string. An encoded sequence comprises a complete version of the title corresponding to the video data encoded for a given playback bit rate. For example, a given title can be associated with digital content file 132-1, digital content file 132-2 and digital content file 132-3. The digital content file 132-1 can comprise a sequence header index 114-1 and an encoded sequence, encoded for an average playback bit rate of approximately 250 kilobits per second (Kbps). The digital content file 132-2 can comprise a sequence header index 114-2 and an encoded sequence, encoded for an average playback bit rate of approximately 1000 Kbps. Similarly, digital content file 132-3 can comprise a sequence header index 114-3 and an encoded sequence, encoded for an average playback bit rate of approximately 1500 Kbps. The encoded 1500 Kbps sequence allows for high quality reproduction and is therefore more desirable for reproduction compared to the encoded 250 Kbps sequence. A sequence encoded in a digital content file 132 is organized as units of video data representative of a fixed interval of playing time. Overall playing time is generally organized in sequential time intervals, each corresponding to a fixed interval of playing time. For a given period of time, a video data unit is represented within the digital content file 132 for the playback bit rate associated with the digital content file 132. Because variable bit rate encoding can be used , each unit of video data can be variable in size, despite a direct correspondence with the fixed interval of playing time. For the example above, each time slot within the 132-1 digital content file comprising an encoded sequence, encoded for a playback bit rate of 1500 Kbps would replace a unit of video data encoded at 1500 Kbps. In one embodiment, the audio data units are encoded at a fixed bit rate for each time interval and stored in the digital content file 132. The video data units and the audio data units are configured to provide a synchronized playback time, starting at the beginning of each time interval. In order to avoid missing audio or video playback, the audio data units and video data units are downloaded in a generally alternating pattern to ensure that the audio buffer 244 and video buffer 246 store comparable durations of playing time. Those skilled in the art will readily recognize that each encoded sequence, as defined above, comprises a stream of content. In addition, the process of downloading a given encoded stream from content server 130 to content player 110 comprises streaming digital content to content player 110 for playback at a specified playback bit rate . The content player 110 may include a computer system, a set top box, a mobile device, such as a cell phone, or any other technically feasible computing platform, which can network connectivity and is either attached or include a video device and a speaker device for displaying video frames, and generating the acoustic output, respectively. As described in more detail, the content player 110 is configured to download a video data unit for a selected bit rate, and to adapt the selected bit rate for the subsequently downloaded video data units based on width conditions. prevailing in the communications network 150. As the available bandwidth within the communications network 150 becomes limited, the player can select a lower bit rate encoding for the video data units that have not yet been downloaded corresponding to the subsequent time slots. As the available bandwidth increases, a higher bit rate encoding can be selected. Although, in the above description, the content distribution system 100 is shown with a content player 110 and a CDN 140, those skilled in the art will recognize that the architecture of Figure 1 contemplates only one exemplary embodiment of the invention. Other embodiments can include any number of content players 110 and / or CDNs 140. Thus, Figure 1 is in no way intended to limit the scope of the present invention. Figure 2 is a more detailed view of the content player 110 of Figure 1, according to an embodiment of the invention. As shown, the content player 110 includes, without limitation, a central processing unit (CPU) 210, a graphics subsystem 212, an input / output (I / O) device interface 214, a network interface 218, an interconnect 220, and a memory subsystem 230. The content player 110 may also include a mass storage unit 216. CPU 210 is configured to retrieve and execute programming instructions stored in memory subsystem 230. Similarly, CPU 210 is configured to store and retrieve application data that resides in memory subsystem 230. Interconnect 220 is configured to facilitate data transmission, such as programming instructions and application data, between CPU 210, graphics subsystem 212, I / O device interface 214, mass storage 216, network interface 218, and memory subsystem 230. The graphics subsystem 212 is configured to generate video data frames and transmit the video data frames to the video device 250. In one embodiment, the graphics subsystem 212 can be integrated into an integrated circuit, together with the CPU 210. Video device 250 can comprise any technically feasible means for generating an image for viewing. For example, the video device 250 can be manufactured using liquid crystal display (LCD) technology, cathode ray technology, and light emitting diode (LED) technology (organic or inorganic). An input / output device (I / O) interface 214 is configured to receive input data from user I / O devices 252 and transmit input data to CPU 210 through interconnect 220. For example, devices User 252 I / O can include one of the most buttons, a keyboard and a mouse or other pointing device. The I / O device interface 214 also includes an audio output unit configured to generate an electrical audio output signal. The user's I / O devices 252 includes a loudspeaker configured to generate an acoustic output in response to the electrical audio output signal. In alternative embodiments, the video device 250 may include the speaker. A television is an example of a device known in the art that can display video frames and generate acoustic output. A mass storage unit 216, such as a hard disk drive or flash memory storage unit, is configured to store non-volatile data. A network interface 218 is configured to transmit and receive data packets over communications network 150. In one embodiment, network interface 218 is configured to communicate using the well-known ethernet standard. Network interface 218 is coupled to CPU 210 via interconnect 220. The memory subsystem 230 includes programming instructions and data that make up an operating system 232, a user interface 234, and a playback application 236. Operating system 232 performs system management functions, such as hardware device management, including network interface 218, mass storage unit 216, I / O interface device 214, and graphics subsystem 212. Operating system 232 also provides memory management processes and models for user interface 234 and the playback application 236.The user interface 234 provides a specific structure, such as a window and object metaphor, by user interaction with the content player 110. Technicians in the field will recognize the various operating systems and user interfaces. that are well known in the art and suitable for incorporation into the content player 110. Playback application 236 is configured to retrieve a digital content file 132 from a content server 130 via network interface 218 and play digital file 132 through graphics subsystem 212. Graphics subsystem 212 is configured to transmit a processed video signal to the video device 250. In normal operation, the playback application 236 receives a request from a user to play a specific title. The 236 playback application then finds the digital content files 132 associated with the requested title, where each digital content file 132 associated with the requested title includes an encoded string, encoded at a different playback bit rate. In one embodiment, playback application 236 finds digital content files 132 by posting search request 152 to content directory server 120. Content directory server 120 responds to title search request 152 with data from file location 154 for each digital content file 132 associated with the requested title. Each file location data 154 includes a reference to the associated content server 130, in which the requested digital content file 132 resides. The title search request 152 may include the name of the required title, or other identifying information in relation to the title. After the 236 playback application has located the digital content files 132 associated with the requested title, the 236 playback application downloads the sequence header indexes 114 associated with each digital content file 132 associated with the requested title from the server. content 130. A sequence header index 114 associated with digital content file 132, described in more detail in Figure 4A, includes information related to the encoded sequence included in digital content file 132. In one embodiment, the playback application 236 begins to download the digital content file 132 associated with the requested title comprising the encoded sequence, encoded to the lowest bit reproduction rate in order to minimize the time for the start of reproduction. For purposes of discussion only, the digital content file 132-1 is associated with the requested title and comprises the encoded sequence, encoded for the lowest reproduction bit rate. The requested digital content file 132-1 is downloaded to the content buffer 112, configured for the server as a first-in, first-out queue. In one embodiment, each downloaded data unit comprises a video data unit or an audio data unit. As the video data units associated with the requested digital content file132-1 are downloaded to the content player 110, the video data units are pressed into the content buffer 112. Likewise, as audio data units associated with the requested digital content file 132-1 are downloaded to the content player 110, the audio data units are pressed into the content buffer 112. In one embodiment, the video data units are stored in the video buffer 246 within the content buffer 112, and the audio data units are stored in the audio buffer 224, also within the content buffer 112. A video decoder 248 reads the video data units from the video buffer 246, and turns the video data units into a sequence of video frames corresponding in duration to the fixed interval of playing time. Reading a video data unit from video buffer 246 effectively streams the video data unit from video buffer 246 (and content buffer 112). The video frame sequence is processed by graphics subsystem 212 and transmitted to the video device 250. An audio decoder 242 reads audio data units from the audio buffer 244, and makes the audio data units a sequence of audio samples, generally synchronized in time with the video frame sequence. In one embodiment, the sequence of audio samples is transmitted to the I / O device interface 214, which converts the sequence of audio samples into an electrical audio signal. The electrical audio signal is transmitted to the speaker within the user's I / O devices 252, which in response generates an acoustic output. When playback starts, the playback application 236 requests units of video data encoded for the lowest available bit rate, thus minimizing the start time perceived by a user. However, as the bandwidth conditions within the communications network 150 allow the playback application 236 to request encoded video data units for higher bit rates, thereby improving playback quality over time, without introduction of a commensurable start delay with the highest level of playback quality ultimately achieved by the playback application 236. If the bandwidth conditions within the communications network 150 deteriorate during playback, then the playback application 236 can order subsequent units of video data encoded with a lower bit rate. In one embodiment, the playback application 236 determines which encoded bit rate should be used for each sequential transfer of a video data unit based on an estimated bandwidth calculated over one or more recently downloaded data units. of video. Figure 3 is a more detailed view of the content server 130 of Figure 1, according to an embodiment of the invention. Content server 130 includes, without limitation, a central processing unit (CPU) 310, a network interface 318, an interconnect 320, a memory subsystem 330, and a mass storage unit 316. Content server 130 it can also include an I / O device interface 314. CPU 310 is configured to retrieve and execute programming instructions stored in memory subsystem 330.Similarly, CPU 310 is configured to store and retrieve application data residing in memory subsystem 330. Interconnect 320 is configured to facilitate data transmission, such as programming instructions and application data, between CPU 310, graphics subsystem 212, I / O device interface 314, mass storage 318, network interface 318, and memory subsystem 330. Mass storage units 316 store digital content files 132-1 through 132-N. Digital content files 132 can be stored using any technically viable file system on any technically viable media. For example, the mass storage unit 316 may comprise a redundant arrangement of an independent disk system (RAID) that incorporates a conventional file system. The memory subsystem 330 includes programming instructions and data that make up an operating system 332, a user interface 334, and a file download application 336. Operating system 332 performs system management functions, such as device management hardware, including the network interface 318, the mass storage unit 316, the I / O device interface 314. The operating system 332 also provides memory management processes and models for the user interface 334 and the application file download 336.The user interface 334 provides a specific structure, such as a window and object metaphor or a command line interface, for user interaction with the content server 130. A user can employ the user 334 to manage the content server roles. In one embodiment, user interface 334 features a management web page to manage the operation of the content server 130. Those skilled in the art will recognize the various operating systems and user interfaces that are well known in the art and suitable for incorporation. in the content player 130. The 336 file download application is configured to facilitate the transfer of digital content files 132-1 to 132-N, to the content player 110, through an operation or set of file download operations. The downloaded digital content file 132 is transmitted via the network interface 318 to the content player 110 via the communications network 150. In one embodiment, the file contents of each digital content file 132 can be accessed in a sequence arbitrary (known in the art as "random access"). As previously described herein, each digital content file 132 includes a sequence header index 114 and an encoded sequence. An encoded stream comprises a complete version of a given movie or music encoded for a particular bit rate, and the video data associated with the encoded stream is divided into units of video data. Each unit of video data corresponds to a specific interval of playing time and begins with a frame that includes a sequence header specifying the size and resolution of the video data stored in the video data unit. Figure 4A is a more detailed view of the sequence header index 114 of Figure 1, according to an embodiment of the invention. Header sequence index 114 is a data structure that includes a video bit rate profile 452 and can be populated in any technically feasible manner. The sequence header index 114 included in the digital content file 132 specifies the information related to the encoded sequence also included in the digital content file 132. The video bit rate profile 452 includes a corresponding set of inputs 464 that specifies the locations and the timestamp offsets of the different sequence headers associated with the video data units of the encoded sequence. Typically, sequence headers in the encoded sequence are located at predictable time stamps within the encoded sequence (eg, every 3 seconds). A given entry 464 indicates the time offset and location of a specific sequence header included in a video data unit of the encoded sequence associated with the video bit rate profile 452. For example, entry 464-1 indicates the time offset and the location of the sequence header associated with a first unit of video data in the encoded sequence. Entry 464-2 indicates the time offset and the location of the sequence header associated with a second unit of video data of the same encoded sequence. Importantly, a total count of bytes characterizing how many bytes comprise a given sequence encoded from a current reproduction position, associated with input 464-K, through the completion of reproduction can be calculated based on the time stamps included in the set of entries 464. The audio data associated with the enhanced sequence is also stored in the digital content file 132. In one embodiment, the audio data has a fixed bit rate encoding. In alternative embodiments, a variable bit rate encoding technique is applied to the audio data, and an audio bit rate profile 472 is included in the sequence header index 114. The audio bit rate profile 472 includes entries 484 configured to store a timestamp offset and sequence header location for each respective unit of audio data at a respective playing time. Figure 4B is a graph 401 which illustrates the results of buffer prediction algorithms performed at two different bit rates 410, 412 at an evaluation point 444, according to an embodiment of the invention. Buffer time 430, shown along a positive vertical axis, indicates how much effective playback time is stored within the content buffer 112 in Figure 1. Buffer empty time 434, shown along a negative vertical axis, indicates equivalent time deficit during buffer emptying 420. At a time of evaluation 444, the playback application of 236 in Figure 2 estimates whether playback can end with a current playback bit rate 410, given the available bandwidth at the time. If the estimated buffer time 430 indicates a buffer depletion 420 for the current bit rate 410 at any time playback 440 before completion of playback, then continuity at the current bit rate is not feasible, but a lower bit rate 412 may be feasible. The lower bit rates are tested in order to find a lower bit rate that can feasibly complete the reproduction, given the available bandwidth. In one embodiment, the playback application 236 estimates whether it can complete playback at a current playback bit rate, represented at an evaluation point 444, periodically, such as every three seconds, during playback. As shown, buffer time 430 estimates a buffer emptying at some point in the future for bit rate 410 and a buffer emptying for bit rate 412. In such a scenario, the completion of playback at bit rate 410 does not it is feasible given the bandwidth available at the moment, while the completion of playback at bit rate 412 appears to be feasible, due to the bandwidth available at the moment. When predicting the viability of a particular encoded sequence, the playback application 236 may choose to use a single encoded sequence, and therefore a single reproduction bit rate, or an "aggregate encoded sequence" as input to a prediction algorithm , described in more detail in Figures 5 to 7. The aggregated encoded sequence represents a combination of one or more encoded sequences, and the corresponding reproduction bit rates for one or more encoded sequences, which may be used in the future for reproduction. For example, if the 236 playback application is playing a high bit rate encoded stream, then the 236 playback application can predict that the encoded stream is viable (for now), if the download can continue for a limited time. of time. After the timeout period, the playback application 236 can continue buffering the current encoded sequence for an additional period of time and subsequently switch to a lower bit rate encoded sequence. This is achieved by aggregating part of the current scrambled sequence with a later part of the time associated with a lower encoded bit rate, and by predicting the viability of the resulting aggregated scrambled sequence, i.e., the total of the two scrambled sequences. The 236 playback application can also choose to analyze the full duration information for two or more strings encoded in a prediction calculation, depending on the direction of an anticipated switch. For example, if the playback application 236 intends to evaluate a higher bit rate encoded sequence for future playback, the playback application 236 may evaluate the highest bit rate encoded total sequence to ensure viability at a bit rate. taller. However, if the playback application 236 is evaluating a high bit rate encoded sequence, which is the current encoded sequence, the reproduction application 236 can alternatively predict the viability in an aggregate of the current encoded sequence and a sequence lower bit rate encoded in an effort to defer switching to the lower bit rate encoded sequence. Figure 4C illustrates the data flow for buffering and reproducing digital content 494 associated with a digital content file 132, according to an embodiment of the invention. The content server 130 in Figure 1 provides the content data 494, comprising audio data units and video data units, from the digital content file 132 to a buffering process 490.The buffering process 490 can be implemented as a thread of execution within the content player 110. The buffering process 490 is configured to download the content data 494 and write the content data 494 to the content buffer 112. The buffering process 490 writes audio data units to the audio buffer 244 within the content buffer 112, and the video data units to the video buffer 246, also within the content buffer 112. In one embodiment, the content buffer 112 it is structured as one as a first-in, first-out queue (FIFO). A reproduction process 492, also running within the content player 110, streams audio data units and video data units from the content buffer 112 for playback. In order to maintain uninterrupted playback of content data 494, the content buffer 112 must always have at least one audio data unit and one video data unit available when the playback process 492 requires reading of a content buffer 112. The buffer depletion occurs, as shown in Figure 4B, when the content buffer 112 is empty and the playback process 492 needs to perform a read operation. Figure 5 is a flow diagram of the steps of the method for adaptively buffering the content data to a content buffer 112 for reproduction, according to an embodiment of the invention. Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. The method starts at step 510, where the playback application 236 in Figure 2 receives a request to start playback of the digital content file 132. In step 512, the playback application 236 pre-bufferes one or more units of video data of the digital content file 132 at a lower bit rate available for the content buffer 112 in Figure 1. The playback application 236 also pre-bufferes one or more corresponding units of audio data to the content buffer 112. The pre -buffering includes downloading a certain amount of video data and audio data before playback starts. At step 514, the 236 playback application starts playback. From that point on, a playback segment is performed to generate and display data from the content buffer 112 while method steps 500 are performed in order to buffer the new data to the content buffer 112. In one embodiment, the playback runs as part of the 236 playback application. In step 520, the playback application 236 determines whether a user request has been received. If, at step 520, a user request was received, then the method returns to step 512 for pre-buffering. If, however, in step 520, a user request has not been received, then the method proceeds to step 522. In step 522, playback application 236 determines whether the remaining playback time in audio buffer 244 (AudioBuff ) is less than the playback time remaining in the video buffer 246 (VideoBuff). When the playing time remaining in the audio buffer 244 is greater than or equal to the playing time remaining in the video buffer 246, then more units of video data are required for playback through the 236 playback application. When the playing time remaining in the audio buffer 244 is greater than or equal to the playing time remaining in the video buffer 246, so more units of audio data will be needed for playback through the 236 playback application. In this way, the 236 playback application balances the download video data units and audio data units from digital content file 132. If, in step 522, the remaining playback time in audio buffer 244 is greater than or equal to the remaining playback time in video buffer 246, then the method proceeds to step 530. In step 530, playback application 236 determines if a video index (Videolndex), corresponding to a sequential time interval for the unit at the time of execution of video data, is less than the total number of video data units (VideoUnits) for the digital content file 132 currently playing. The total number of video data units for the digital content file 132 can be retrieved from the sequence header index 114 associated with the digital content file 132. If, in step 530, the video index is less than the total number of video data units for digital content file 132, that is, not all video data units for digital content file 132 were reproduced , then the method proceeds to step 540. In step 540, the playback application 236 determines a next encoded sequence from which to buffer subsequent units of video data, based on predictions of buffer depletion, as described in greater detail. details in Figure 6. The following scrambled sequence can be a higher bit rate scrambled sequence, a lower bit rate scrambled sequence, or the same scrambled sequence as the current scrambled sequence. In step 542, the playback application 236 downloads a video data unit, based on the next determined encoded sequence, and bufferes the video data unit in the video buffer 246 within the content buffer 112. Returning to step 530, if the playback application 236 determines that the video index is not less than a total number of units of video data for the digital content file 132 being played, then data units of video by the playback application 236 and the method ends at step 590. Returning to step 522, if the playback application 236 determines that the time remaining in the audio buffer 244 is less than the time remaining in the video buffer 246, then units of audio data are no longer required by the playback application 236 for the playback and the method proceeds to step 550. In step 550, the playback application 236 determines whether an audio index (Audiolndex), corresponding to a sequential time interval for the unit in audio data playback, is less than the total number of audio data units (AudioUnits) for the digital content file 132 currently playing. If, in step 550, the 236 playback application determines that the audio index is less than a total number of units of audio data for the digital content file 132 currently playing, then another unit of audio data is required for the playback application 236 and the method proceeds to step 552.In step 552, the playback application 236 downloads an audio data unit and bufferes the audio data unit in audio buffer 244 in the content buffer 112. However, at step 550, playback application 236 determines that the video index is not less than a total number of units of video data for the digital content file 132 currently playing, so units of audio data by the playback application 236 and the method ends at step 590. Figure 6 is a flow diagram of method steps 600 to determine the next coded sequence to be buffered for reproduction, according to an embodiment of the invention; Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. Again, method steps 600 describe step 540 in Figure 5 in greater detail, and, in one embodiment, are performed by the playback application 236. The method starts at step 610, where the playback application 236 predicts a viability of reproducing a current coded sequence for completion without a buffer empty. Those skilled in the art will recognize that the viability determination can be implemented using any technically possible techniques, such as the techniques described in conjunction with Figure 4B and Figure 7A. If, in step 620, the playback application 236 determines that the current encoded sequence corresponding to a current bit rate is not viable, then the method proceeds to step 630.If, in step 630, the playback application 236 is playing currently an encoded sequence that does not represent a lower bit rate encoded sequence, then the method proceeds to step 632, where the 236 playback application selects an encoded sequence that corresponds to a lower bit rate than the rate current bit rate as a candidate encoded sequence. In step 634, the reproduction application 236 provides a feasibility to reproduce the candidate coded sequence, again this step is described in greater detail in Figure 7A. If, at step 640, the playback application 236 determines that the candidate coding sequence is viable, then the method ends at step 690, where the candidate coding sequence returns as the next coding sequence. Going back to step 630, if the 236 playback application is currently playing a scrambled sequence that represents a scrambled sequence corresponding to the lowest bit rate, then the method ends at step 690 with the current (lowest) scrambled sequence that returns as the next coded sequence. Going back to step 620, if the 236 playback application determines that the current encoded sequence is viable, then method proceeds to step 650. If, in step 650, the 236 playback application is currently playing a coded sequence that does not represent a higher bit rate encoded sequence, then the method proceeds to step 652. In step 652, playback application 236 predicts the viability of an encoded sequence corresponding to a higher bit rate than the current bit rate. Again, the feasibility forecast is described in more detail in Figure 7A. If, in step 660, the playback application 236 determines the encoded sequence corresponding to the highest bit rate as being feasible, then the method proceeds to step 662.In step 662, the playback application of 236 selects a larger encoded sequence of highest bit rate for the return as the next encoded sequence. If, however, at step 660, the playback application 236 determines that the encoded sequence corresponding to the highest bit rate is not viable, then the method ends at step 690 with the current encoded sequence returned as the next encoded sequence. Going back to step 650, if the 236 playback application is currently playing a scrambled sequence that represents a scrambled sequence corresponding to the highest bit rate, then the method ends at step 690 with the current (lowest) scrambled sequence that returns as the next coded sequence. Figure 7A is a flow diagram of method steps 700 for predicting the feasibility of completing reproduction at a current bit rate, according to an embodiment of the invention; Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. Again, method steps 700 describe steps 601, 634 and 652 of Figure 6 in greater detail, and, in one embodiment, are performed by the playback application 236. The method starts at step 710, where the playback application 236 initializes a set of variables, including Audiolndex, Videolndex, AudioBuffer, and VideoBuffer. Audiolndex represents an index used to select a unit of audio data corresponding to a specific time interval. The Videolndex represents an index used to select a unit of video data corresponding to a specific time interval. The AudioBuffer represents a buffered playing time amount currently stored in the 244 audio buffer. The VideoBuffer represents a buffered playing time amount currently stored in the 246 audio buffer. Audiolndex is initialized with a current Audiolndex, which represents a current state. playback of a current encoded audio stream. The Videolndex starts with a current Videolndex, which represents a current state of playback of a current encoded video sequence. AudioBuffer starts with a current AudioBuffer playback value. The VideoBuffer starts with a current VideoBuffer playback value. If, in step 712, the playback application 236 determines that the AudioBuffer is not inferior to the VideoBuffer, then less playback time is available in the video buffer than the audio buffer, and the method proceeds to step 714 to the beginning estimating the effects of downloading another unit of video data. If, in step 714, the playback application 236 determines that the Videolndex is inferior to the VideoUnits, which represents a total number of units of video data for the current encoded sequence, then the playback application 236 needs to download another data unit from video and the method proceeds to step 720. In step 720, the playback application of 236 estimates a state resulting from content buffer 112 if another unit of video data is downloaded from a content server 130, given a current state for the content buffer 112 and bandwidth availability prevails. A benefit value is also calculated, measured over the duration, which can be added to the video buffer 246 and a video data unit must be downloaded. The benefit amount represents the additional playing time associated with downloading the additional video data unit. Step 720 is described in more detail in Figure 7C. If, in step 722, the VideoBuffer is not less than or equal to zero, then a buffer empty in the video buffer 246 is not currently designed and the method proceeds to step 724. If, in step 724, the AudioBuffer is not less or equal to zero, then an empty buffer in the audio buffer 244 is not currently projected and the method proceeds to step 726. In step 726, the benefit value is added to the VideoBuffer variable and represents a transfer of a unit of video data. In step 728, the Videolndex is incremented to represent the download of the video data unit. A subsequent download would be for a video data unit corresponding to the increased value of Videolndex. Returning to step 724, if the playback application 236 determines that the AudioBuffer is less than or equal to zero, then an empty buffer in the audio buffer 244 is designed and the method ends in step 740, with a response value (return) "is not feasible." Returning to step 722, if the playback application 236 determines that the VideoBuffer is less than or equal to zero, then a buffer empty in the audio buffer 246 is designed and the method ends in step 740, with a response value (return) "is not feasible." Returning to step 714, if the playback application 236 determines that the Videolndex is not inferior to VideoUnits, which represents a total number of units of video data for the current encoded sequence, then the playback application 236 does not need to download another unit video data, and no buffer underruns were detected. At this point, the playback application 236 determined that a download of both the encoded video and audio sequence can be performed without a buffer empty and the method ends in step 742, with a return value of "is feasible." Returning to step 712, if playback request 236 determines that AudioBuffer is less than VideoBuffer, then less playback time is available in the audio buffer than in the video buffer, and the method proceeds to step 716 in order to start estimating the effects of downloading another audio data unit. If, in step 716, the playback application 236 determines that Audiolndex is lower than AudioUnits, which represents a total number of audio data units for the current encoded sequence, then the playback application 236 needs to download another data unit and the method proceeds to step 730.In step 730, the playback application 236 estimates a state resulting from content buffer 112 if another unit of audio data is downloaded from content server 130, given a current state for the content buffer 112 and the availability of bandwidth prevailing. A benefit value is also calculated, measured over the duration, which can be added to the video buffer 244 and a video data unit must be downloaded. Step 730 is described in more detail in Figure 7D. If, in step 732, the VideoBuffer is not less than or equal to zero, then a buffer emptying in the video buffer 246 is not currently designed and the method proceeds to step 734. If, in step 734, the AudioBuffer is not less or equal to zero, then an empty buffer in the audio buffer 244 is not currently projected and the method proceeds to step 736. In step 736, the benefit value is added to the AudioBuffer variable in order to represent the download of a audio data unit. In step 738, Audiolndex is incremented to represent the download of the audio data unit. A subsequent download would be for an audio data unit corresponding to the increased value of Audiolndex. Returning to step 734, if the playback application 236 determines that the AudioBuffer is less than or equal to zero, then an empty buffer in the audio buffer 244 is designed and the method ends in step 740, with a response value (return) "is not feasible." Returning to step 732, if the playback application 236 determines that the VideoBuffer is less than or equal to zero, then an empty buffer in the audio buffer 246 is designed and the method ends in step 740, with a response value (return) "is not feasible." Returning to step 716, if the playback application 236 determines that Audiolndex is not inferior to AudioUnits, which represents a total number of units of audio data for the current encoded sequence, then the playback application 236 does not need to download another one audio data unit, and no buffer underruns were detected. At this point, the playback application 236 determined that a download of both the encoded video and audio sequence can be performed without a buffer empty and the method ends in step 742, with a return value of "is feasible." Figure 7B is a flow diagram of the steps of method 701 for performing the initialization step of variables 710 in Figure 7A, according to an embodiment of the invention. Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. Again, method steps 701 describe step 710 of Figure 7A in greater detail, and, in one embodiment, are performed by the playback application 236. The method starts at step 750, where Audiolndex is initialized to a current Audiolndex, which represents a current state of reproduction of a current encoded audio sequence. In step 752, the Videolndex is initialized to a current Videolndex, which represents a current state of playback of a current video encoded sequence. In step 754, AudioBuffer is initialized to a current AudioBuffer playback value. The method ends at step 756, where the VideoBuffer is initialized to a current VideoBuffer playback value. Figure 7D is a flow diagram of the steps of method 702 for performing the step of estimating the status of the content buffer 112 in Figure 7A, according to an embodiment of the invention. Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. Again, method steps 702 describe step 720 of Figure 7A in greater detail, and, in one embodiment, are performed by the playback application 236. The method starts at step 760, where the playback application 236 estimates a download time for the next unit of video data. A video bit rate profile 452 associated with an encoded string, encoded for a different playback bit rate and included in a different digital content file 132 associated with the requested title is indexed using Videolndex to search for a size for the next video data unit. The size of the next unit of video data, in conjunction with the availability of current bandwidth, directly determines the estimated download time. In step 762, the playback application 236 computes a value for VideoBuffer by subtracting the download time from a current VideoBuffer value. This new value represents the estimated playback consumption of video buffer data 246, during download time. Similarly, in step 764, playback application 236 computes a value for AudioBuffer by subtracting the download time from a current AudioBuffer value. Figure 7D is a flow diagram of the steps of method 703 for carrying out the step of estimating the status of the content buffer 112 in Figure 7A, according to an embodiment of the invention. Although the steps of the method are described in conjunction with the systems of Figures 1, 2 and 3, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the inventions. Again, method steps 703 describe step 730 of Figure 7A in greater detail, and, in one embodiment, are performed by the playback application 236. The method starts at step 770, where the playback application 236 estimates a download time for the next unit of audio data. The size of the next unit of audio data, in conjunction with the current bandwidth availability directly determines the estimated download time. In step 772, the playback application 236 computes a value for VideoBuffer by subtracting the download time from a current VideoBuffer value. This new value represents the estimated playback consumption of video buffer data 246, during download time. Similarly, in step 774, playback application 236 computes a value for AudioBuffer by subtracting the download time from a current AudioBuffer value. One embodiment of the invention can be implemented as a program product stored on computer-readable storage media within the content player 110. In this embodiment, the content player 110 comprises an embedded computer platform, such as a set-top box. top box). An alternative embodiment of the invention can be implemented as a program product that is downloaded to a memory within a computer system, for example, as executable instructions embedded within an internet website. In this embodiment, the content player 110 comprises the computer system. In short, a technique for reproducing a digital content file on a content player 110 is disclosed. The technique involves estimating whether a particular digital content file can be reproduced at a specific bit rate, given the available bandwidth, and adapting the bit rate to meet existing bandwidth conditions. The feasibility estimate essentially involves simulating a download of remaining units of video and audio data from a current playback location in time until the playback is complete. Feasibility is periodically reassessed and, if necessary, the bit rate is reduced to a viable bit rate. If possible, however, the bit rate is increased in order to increase the display quality. An advantage of the disclosed technique is that the potential buffer empties based on reproduction bit rates and the available download bandwidth is tracked and the digital content units are downloaded in the highest possible image quality, avoiding an empty condition buffer. In addition, the latency time associated with starting playback is reduced, starting playback at a relatively low bit rate, and adapting higher playback bit rates whenever possible. While the foregoing is directed to modalities of the present invention, other additional modalities of the invention can be designed without departing from the basic scope thereof. For example, aspects of the present invention can be implemented in hardware or software or in a combination of hardware and software. One embodiment of the invention can be implemented as a program product for use with a computer system. The program product (s) program defines the modalities' functions (including the methods described herein) and may be contained in a variety of computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (for example, read-only memory devices inside a computer, such as a drive-readable CD-ROM disc CD-ROM, flash memory, ROM memory chips or any type of non-volatile solid state semiconductor memory) in which information is stored permanently; and (ii) recordable storage media (for example, floppy disks within a floppy drive or hard disk drive or any type of random-access solid-state semiconductor memory) in which changeable information is stored. Such computer-readable storage media, when carrying computer-readable instructions that guide the functions of the present invention, are embodiments of the present invention. In view of the above, the scope of the present invention is determined by the following claims.
权利要求:
Claims (7) [0001] 1. Method for determining whether digital content downloaded from a content server (130-1) to a content buffer (112) can be accessed to reproduce the content buffer at a predetermined bit rate without causing an empty buffer, the method characterized by the fact that it comprises: determining that one or more units of digital content in a digital content file (132-1) have yet to be downloaded and buffered for playback; estimate a download time associated with downloading a first unit of digital content based on the size of the first unit of digital content and an available download bandwidth, where a first encoded stream is included in a plurality of encoded strings stored in the file of digital content and each encoded stream corresponds to a different bit rate at which digital content in the content buffer can be accessed for playback, whereby the size of the first unit of digital content depends on the first encoded stream included in the digital content file a from which the first unit of digital content is downloaded; calculate a new value for an amount of playing time currently stored in the content buffer by subtracting the estimated download time from a current value for the amount of playing time currently stored in the content buffer; determine whether the new value for the amount of playing time currently stored in the content buffer is less than or equal to zero, indicating that a buffer depletion will occur; indicate that the download of the first unit of digital content from the first encoded sequence is feasible, if a buffer emptying will occur, or indicate that the download of the first unit of digital content from the first encoded sequence is not viable, if an emptying buffer will occur; where the step of calculating a new value for a quantity of playing time also comprises the step of updating the time associated with the reproduction of all digital content stored in the content buffer to take into account the first unit of digital content being downloaded from first coded sequence for the content buffer, and in which the steps of estimating a download time, calculating a time associated with playback, determining whether the calculated time is less than or equal to zero, and indicating whether the download is viable or not are repeated for a second unit of digital content, and where the second unit of digital content is downloaded from the first encoded stream or another encoded stream included in the digital content file. [0002] 2. Method, according to claim 1, characterized by the fact that the first unit of digital content comprises video data associated with a film or television program. [0003] 3. Method, according to claim 2, characterized by the fact that the step of calculating a new value of a playing time currently stored in the content buffer comprises: calculating a new value of an amount of video playing time currently stored in a video buffer within the content buffer by subtracting the estimated download time from a current value of the amount of video playback time associated with playing video data currently stored in the video buffer; and calculate a new value for an amount of audio playback time currently stored in an audio buffer within the content buffer by subtracting the estimated download time from a current value of the amount of audio playback time associated with playback of audio data currently stored in the audio buffer. [0004] 4. Method, according to claim 3, characterized by the fact that the step of determining whether the new value of the amount of playing time currently stored in the buffer content is less than or equal to zero, indicating that an emptying of a buffer will occur , understands: to determine if the new value of the amount of video playback time currently stored in the video buffer is less than or equal to zero, indicating that an empty video buffer will occur; and determine whether the new value for the amount of audio playback time currently stored in the audio buffer is less than or equal to zero, indicating that an emptying of the audio buffer will occur. [0005] 5. Method, according to claim 2, characterized by the fact that it also comprises the steps of: estimating an audio download time from an audio data unit based on the size of the audio data unit and a width of download bandwidth available; calculate a new value for an amount of audio playback time currently stored in an audio buffer within the content buffer by subtracting the estimated audio download time from a current value of the amount of audio playback time associated with playback of audio data currently stored in the audio buffer; calculate a new value for an amount of video playback time currently stored in a video buffer within the content buffer by subtracting the estimated download time from a current value of the amount of video playback time associated with data playback video currently stored in the video buffer; determine whether the new value for the amount of audio playback time currently stored in the audio buffer is less than or equal to zero, indicating that a buffer failure will occur; determine whether the new value for the amount of video playback time currently stored in the video buffer is less than or equal to zero, indicating that a buffer depletion will occur; and indicate that the download of the audio data unit is feasible, if a buffer emptying will not occur, or indicate that the download of the audio data unit is not feasible, if a buffer emptying will occur. [0006] 6. Computer readable non-transitory medium storing instructions, characterized by the fact that the instructions, when executed by a processing unit, cause the processing unit to execute the method defined in any one of claims 1 to 5. [0007] 7. Content player device configured to determine whether digital content downloaded from a content server to a content buffer can be accessed for playback of the content buffer at a predetermined bit rate without causing a buffer to be emptied, the content reproducing device characterized by the fact that it comprises: a memory that includes the content buffer to store the downloaded digital content; and a processing unit coupled to the memory and configured to execute the method defined in any one of claims 1 to 5.
类似技术:
公开号 | 公开日 | 专利标题 BR112012002182B1|2020-12-08|METHOD FOR DETERMINING IF THE DIGITAL CONTENT DOWNLOADED FROM A CONTENT BUFFER FOR A CONTENT BUFFER CAN BE ACCESSED FOR THE CONTENT BUFFER REPRODUCTION AT A PRE-DETERMINED BIT RATE WITHOUT PROVISING A LITTLE BUFFERER EMPTY, THEREFORE A LOT OF BUFFITER DETAILS, THEREFORE LOT CONTENT PLAYER DEVICE US9769505B2|2017-09-19|Adaptive streaming for digital content distribution US9781183B2|2017-10-03|Accelerated playback of streaming media US10305947B2|2019-05-28|Pre-buffering audio streams BR112013013944B1|2022-01-25|Method and system for transferring digital video content CA2825019C|2016-08-02|Variable bit video streams for adaptive streaming
同族专利:
公开号 | 公开日 EP2457167A1|2012-05-30| IN2012DN00717A|2015-06-19| US8631455B2|2014-01-14| EP2457167A4|2015-09-02| CO6491092A2|2012-07-31| US20140189771A1|2014-07-03| DK2457167T3|2021-02-08| BR112012002182A2|2016-05-31| US9648385B2|2017-05-09| JP5652971B2|2015-01-14| WO2011011724A1|2011-01-27| MX2012001100A|2012-06-13| CA2768964A1|2011-01-27| CL2012000194A1|2012-08-24| JP5302463B2|2013-10-02| US20110023076A1|2011-01-27| JP2013219819A|2013-10-24| JP2013500635A|2013-01-07| CA2768964C|2015-08-25| EP2457167B1|2020-12-02|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US5159447A|1991-05-23|1992-10-27|At&T Bell Laboratories|Buffer control for variable bit-rate channel| US5414455A|1993-07-07|1995-05-09|Digital Equipment Corporation|Segmented video on demand system| US5608732A|1993-09-01|1997-03-04|Zenith Electronics Corporation|Television distribution system having virtual memory downloading| AT194742T|1994-12-28|2000-07-15|Koninkl Philips Electronics Nv|BUFFER MANAGEMENT IN COMPRESSION SYSTEMS WITH VARIABLE BITRATE| US6721952B1|1996-08-06|2004-04-13|Roxio, Inc.|Method and system for encoding movies, panoramas and large images for on-line interactive viewing and gazing| US6453114B2|1997-02-18|2002-09-17|Thomson Licensing Sa|Random picture decoding| JPH11331792A|1998-05-08|1999-11-30|Sony Corp|Client device and server-client system| US6438630B1|1999-10-06|2002-08-20|Sun Microsystems, Inc.|Scheduling storage accesses for multiple continuous media streams| JP2002157825A|2000-11-21|2002-05-31|Ricoh Co Ltd|Information recording device| US7274661B2|2001-09-17|2007-09-25|Altera Corporation|Flow control method for quality streaming of audio/video/media over packet networks| US7646816B2|2001-09-19|2010-01-12|Microsoft Corporation|Generalized reference decoder for image or video processing| EP1359722A1|2002-03-27|2003-11-05|BRITISH TELECOMMUNICATIONS public limited company|Data streaming system and method| JP2004040526A|2002-07-04|2004-02-05|Ricoh Co Ltd|System for distributing image and system for distributing and reproducing image| US7263129B2|2002-08-29|2007-08-28|Sony Corporation|Predictive encoding and data decoding control| JP3935419B2|2002-11-19|2007-06-20|Kddi株式会社|Video coding bit rate selection method| EP1465186A1|2003-04-02|2004-10-06|Deutsche Thomson-Brandt Gmbh|Method for buffering data streams read from an optical storage medium| US8345754B2|2003-09-07|2013-01-01|Microsoft Corporation|Signaling buffer fullness| US7924921B2|2003-09-07|2011-04-12|Microsoft Corporation|Signaling coding and display options in entry point headers| US7234007B2|2003-09-15|2007-06-19|Broadcom Corporation|Adjustable elasticity FIFO buffer have a number of storage cells equal to a frequency offset times a number of data units in a data stream| US7818444B2|2004-04-30|2010-10-19|Move Networks, Inc.|Apparatus, system, and method for multi-bitrate content streaming| JP2005333478A|2004-05-20|2005-12-02|Mitsumi Electric Co Ltd|Streaming content reproduction method and internet connecting device using the same| KR20060065482A|2004-12-10|2006-06-14|마이크로소프트 코포레이션|A system and process for controlling the coding bit rate of streaming media data| US7480701B2|2004-12-15|2009-01-20|Microsoft Corporation|Mixed-media service collections for multimedia platforms| JP4643330B2|2005-03-28|2011-03-02|ソニー株式会社|COMMUNICATION PROCESSING DEVICE, DATA COMMUNICATION SYSTEM, COMMUNICATION PROCESSING METHOD, AND COMPUTER PROGRAM| JP2006279843A|2005-03-30|2006-10-12|Nippon Telegraph & Telephone West Corp|Content distribution system and content reproduction device| AT408290T|2005-04-11|2008-09-15|Ericsson Telefon Ab L M|TECHNOLOGY FOR CONTROLLING DATA PACKET TRANSMISSIONS FROM VARIABLE BITRATE DATA| US7743183B2|2005-05-23|2010-06-22|Microsoft Corporation|Flow control for media streaming| JP2007036666A|2005-07-27|2007-02-08|Onkyo Corp|Contents distribution system, client, and client program| JP4640860B2|2005-12-01|2011-03-02|シャープ株式会社|Communication system and communication terminal| US8607287B2|2005-12-29|2013-12-10|United Video Properties, Inc.|Interactive media guidance system having multiple devices| JP4944484B2|2006-04-20|2012-05-30|キヤノン株式会社|Playback apparatus, playback method, and program| US20080133766A1|2006-05-05|2008-06-05|Wenjun Luo|Method and apparatus for streaming media to a plurality of adaptive client devices| US20080062322A1|2006-08-28|2008-03-13|Ortiva Wireless|Digital video content customization| US7743161B2|2006-10-10|2010-06-22|Ortiva Wireless, Inc.|Digital content buffer for adaptive streaming| US8745676B2|2006-12-19|2014-06-03|General Instrument Corporation|Admitting a data file into a channel| WO2008105695A1|2007-03-01|2008-09-04|Telefonaktiebolaget Lm Ericsson |Bit streams combination of downloaded multimedia files| JP4930148B2|2007-03-29|2012-05-16|ブラザー工業株式会社|Information processing apparatus, information processing method, and information processing program| US7706384B2|2007-04-20|2010-04-27|Sharp Laboratories Of America, Inc.|Packet scheduling with quality-aware frame dropping for video streaming| JP2008293436A|2007-05-28|2008-12-04|Victor Co Of Japan Ltd|Content reception control device and content reception control program| US8561116B2|2007-09-26|2013-10-15|Charles A. Hasek|Methods and apparatus for content caching in a video network| ES2624910T3|2008-06-06|2017-07-18|Amazon Technologies, Inc.|Client side sequence switching| KR20100009903A|2008-07-21|2010-01-29|엘지전자 주식회사|Method and apparatus for playing of contents, portable terminal device| US8726310B2|2009-02-05|2014-05-13|Purplecomm Inc.|Meta channel media system control and advertisement technology| EP2257073A1|2009-05-25|2010-12-01|Canon Kabushiki Kaisha|Method and device for transmitting video data| US9014545B2|2009-07-24|2015-04-21|Netflix, Inc.|Adaptive streaming for digital content distribution|WO2010025686A1|2008-09-05|2010-03-11|The Chinese University Of Hong Kong|Methods and devices for live streaming using pre-indexed file formats| US9060187B2|2008-12-22|2015-06-16|Netflix, Inc.|Bit rate stream switching| US9014545B2|2009-07-24|2015-04-21|Netflix, Inc.|Adaptive streaming for digital content distribution| US8914835B2|2009-10-28|2014-12-16|Qualcomm Incorporated|Streaming encoded video data| US9872057B1|2009-11-30|2018-01-16|The Directv Group, Inc.|Method and system for accessing content in another format in a communications system| US9237178B2|2010-02-03|2016-01-12|Futurewei Technologies, Inc.|Combined binary string for signaling byte range of media fragments in adaptive streaming| US8504713B2|2010-05-28|2013-08-06|Allot Communications Ltd.|Adaptive progressive download| US9037742B2|2011-11-15|2015-05-19|International Business Machines Corporation|Optimizing streaming of a group of videos| US9166864B1|2012-01-18|2015-10-20|Google Inc.|Adaptive streaming for legacy media frameworks| CN103425504A|2012-05-18|2013-12-04|阿里巴巴集团控股有限公司|Method and device for loading video files| JP6142488B2|2012-09-13|2017-06-07|株式会社Jvcケンウッド|Content playback apparatus, content playback method, and content playback program| TWI507022B|2012-12-05|2015-11-01|Ind Tech Res Inst|Buffer output method for multimedia stream and multimedia stream buffer module| US9654528B1|2013-03-11|2017-05-16|Google Inc.|Dynamic bitrate selection for streaming media| US10433014B2|2014-10-28|2019-10-01|Hewlett Packard Enterprise Development Lp|Media content download time| CN107534798A|2015-04-22|2018-01-02|Lg 电子株式会社|Broadcast singal sends equipment, broadcasting signal receiving, broadcast singal sending method and broadcast signal received method| WO2017063189A1|2015-10-16|2017-04-20|Qualcomm Incorporated|Deadline signaling for streaming of media data| US10433023B1|2015-10-27|2019-10-01|Amazon Technologies, Inc.|Heuristics for streaming live content| EP3391654B1|2016-01-28|2019-11-13|ARRIS Enterprises LLC|Variable buffer handling for adaptive bitrate streaming| US10091559B2|2016-02-09|2018-10-02|Disney Enterprises, Inc.|Systems and methods for crowd sourcing media content selection| US20190103122A1|2016-03-28|2019-04-04|Sony Corporation|Reproduction device and reproduction method, and file generation device and file generation method| JPWO2017169721A1|2016-03-28|2019-02-07|ソニー株式会社|File generation apparatus and file generation method| US10735508B2|2016-04-04|2020-08-04|Roku, Inc.|Streaming synchronized media content to separate devices| US10387993B2|2017-09-29|2019-08-20|Intel Corporation|Fault-tolerant graphics display engine| CN107809647A|2017-10-24|2018-03-16|深圳市创维软件有限公司|Code check switching method, device and the storage medium of video playback| EP3767962A1|2019-07-19|2021-01-20|THEO Technologies|A media client with adaptive buffer size and the related method|
法律状态:
2019-01-15| B06F| Objections, documents and/or translations needed after an examination request according art. 34 industrial property law| 2019-07-23| B06U| Preliminary requirement: requests with searches performed by other patent offices: suspension of the patent application procedure| 2020-04-28| B07A| Technical examination (opinion): publication of technical examination (opinion)| 2020-08-25| B09A| Decision: intention to grant| 2020-12-08| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 08/12/2020, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US12/509,365|2009-07-24| US12/509,365|US8631455B2|2009-07-24|2009-07-24|Adaptive streaming for digital content distribution| PCT/US2010/043114|WO2011011724A1|2009-07-24|2010-07-23|Adaptive streaming for digital content distribution| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|